$(function () {

    var productId = getQueryString('productId');
    var infoUrl = '/o2o/shopadmin/getproductbyid?productId=' + productId;
    var categoryUrl = '/o2o/shopadmin/getproductcategorylist';
    var productPostUrl = '/o2o/shopadmin/modifyproduct';

    //由于编辑/新增都是在同一页面

    var isEdit = false;
    if (productId) {
        getInfo(productId);
        isEdit = true;
    } else {
        getCategory();
        productPostUrl = '/o2o/shopadmin/addproduct';
    }

    /**
     * 修改传入id
     * @param id
     */
    function getInfo(id) {
        $.getJSON(infoUrl, function (data) {
            if (data.success) {
                //从返回的JSON当中获取product对象信息，并复制给表单
                var product = data.product;
                $('#product-name').val(product.productName);
                $('#product-desc').val(product.productDesc);
                $('#priority').val(product.priority);
                $('#normal-price').val(product.normalPrice);
                $('#promotion-price').val(product.promotionPrice);
                $('#product-point').val(product.point);

                //获取原本的商品类别以及该店铺的所有商品类别列表
                var optionHtml = '';
                var optionArr = data.productCategoryList;
                var optionSelected = product.productCategory.productCategoryId;
                //生成前端的HTML商品类别列表，并默认选择编辑钱的商品类别
                optionArr.map(function (item, index) {
                    var isSelect = optionSelected === item.productCategoryId ? 'selected' : '';
                    optionHtml += '<option data-value="'
                        + item.productCategoryId
                        + '"'
                        + isSelect
                        + '>'
                        + item.productCategoryName
                        + '</option>';
                });
                $('#category').html(optionHtml);
            }
        });
    }

    /**
     * 为商品添加操作提供该店铺下的所有商品列表
     */
    function getCategory() {
        $.getJSON(categoryUrl, function (data) {
            if (data.success) {
                var productCategoryList = data.data;
                var optionHtml = '';
                productCategoryList.map(function (item, index) {
                    optionHtml += '<option data-value="'
                        + item.productCategoryId + '">'
                        + item.productCategoryName + '</option>';
                });
                $('#category').html(optionHtml);
            }
        });
    }

    //针对商品详情图控件组，若该空间组的最后一个元素发生变化(即上传图片)
    //且空间总数未达到6个，则生成新的一个文件上传控件
    $('.detail-img-div').on('change', '.detail-img:last-child', function () {
        if ($('.detail-img').length < 6) {
            $('#detail-img').append('<input type="file" class="detail-img">')
        }
    });

    /**
     * 提交事件
     */
    $('#submit').click(function () {
        var product = {};
        product.productName = $('#product-name').val();
        product.productDesc = $('#product-desc').val();
        product.priority = $('#priority').val();
        product.normalPrice = $('#normal-price').val();
        product.promotionPrice = $('#promotion-price').val();
        product.point = $('#point').val();


        //获取选定商品类别值
        product.productCategory = {
            productCategoryId: $('#category').find('option').not(
                function () {
                    return !this.selected;
                }).data('value')
        };
        product.productId = productId;
        //获取缩略图文件流
        var thumbnail = $('#small-img')[0].files[0];
        //生成表单对象， 用于接受参数并传递后台
        var formData = new FormData();
        formData.append('thumbnail', thumbnail);
        //便利商品详细图控件，获取里面的文件流
        $('.detail-img').map(
            function (index, item) {
                //判断该空间是否一选择了文件
                if ($('.detail-img')[index].files.length > 0) {
                    //将第i个文件流复制给key为productImg i的表单键值对里
                    formData.append('productImg' + index,
                        $('.detail-img')[index].files[0]);
                }
            });
        //product json对象转换成字符流保存至表单对象
        formData.append('productStr', JSON.stringify(product));
        //获取表单里输入的验证码
        var verifyCodeActual = $('#j_captcha').val();
        if (!verifyCodeActual) {
            $.toast('请输入验证码!');
            return;
        }
        formData.append('verifyCodeActual', verifyCodeActual);

        //发起提交
        $.ajax({
            url: productPostUrl,
            data: formData,
            type: 'POST',
            contentType: false,
            processData: false,
            cache: false,
            success: function (data) {
                if (data.success) {
                    $.toast('操作成功');
                    $('#captcha_img').click();
                } else {
                    $.toast('操作失败');
                    $.toast(data.errMsg);
                    $('#captcha_img').click();

                }
            }
        })
    });
});